NOTE: The following tables were compiled by: Michael L. Mohle' Princeton-Galax Systems 9 Grover Ave Princeton, NJ 08540 (609) 924-4149 (evenings) CIS: 76340,650 Source: BEA751 No claims of accuracy are made. The sources are many, including IBM and other manufacturer documentation, numerous books, other compilations of a similar nature, and a number of years working with PC-class machines. If you find any errors or have anything to add, please let me know. My goal is to provide a good reference tool. -- MLM *** CONTENTS OF THIS FILE ARE HEREBY RELEASED TO THE PUBLIC DOMAIN *** PC Compatible Low-Memory Map PGS -- Page 1 Interrupt Vectors (0000-003F) ----------------------------- Addr Int Function -------------------------------------------------------------------------------- 0000 00h CHIP Divide by zero 0004 01h CHIP Single-step 0008 02h CHIP NMI (Non-Maskable-Interrupt) 000C 03h CHIP Breakpoint (1-byte-Interrupt) 0010 04h CHIP Overflow on INTO 0014 05h BIOS Print-screen Key | 286 Bound-Check-Failed 0018 06h 286 Undefined Opcode 001C 07h 286 No math unit available -------------------------------------------------------------------------------- 0020 08h BIOS IRQ_0 Time of day (Vectored Hardware Line) 0024 09h BIOS IRQ_1 Keyboard (Vectored Hardware Line) 0028 0Ah BIOS IRQ_2 Reserved (Vectored Hardware Line) 002C 0Bh BIOS IRQ_3 Serial port (Vectored Hardware Line) 0030 0Ch BIOS IRQ_4 Serial port (Vectored Hardware Line) 0034 0Dh BIOS IRQ_5 Alt. printer (Vectored Hardware Line) 0038 0Eh BIOS IRQ_6 Diskette (Vectored Hardware Line) 003C 0Fh BIOS IRQ_7 Printer (Vectored Hardware Line) -------------------------------------------------------------------------------- 0040 10h BIOS Video 0044 11h BIOS Equipment check 0048 12h BIOS Memory size 004C 13h BIOS Diskette 0050 14h BIOS Serial communications 0054 15h BIOS Cassette, 286 extended I/O 0058 16h BIOS Keyboard 005C 17h BIOS Printer -------------------------------------------------------------------------------- 0060 18h BIOS ROM BASIC entry 0064 19h BIOS Bootstrap 0068 1Ah BIOS Time of day 006C 1Bh BIOS Keyboard-break 0070 1Ch BIOS Timer-tick 0074 1Dh BIOS Video initialization 0078 1Eh BIOS Floppy parameters 007C 1Fh BIOS Graphics Chars (EGA) -------------------------------------------------------------------------------- 0080 20h DOS Program termination 0084 21h DOS Function Calls 0088 22h DOS Terminate Address 008C 23h DOS Ctrl-break Exit 0090 24h DOS Critical Error Handler 0094 25h DOS Absolute sector read 0098 26h DOS Absolute sector write 009C 27h DOS Terminate, stay resident -------------------------------------------------------------------------------- 00A0 28h DOS Internal KEYBOARD_BUSY_LOOP 00A4 29h DOS Internal FAST_PUTCHAR 00A8 2Ah DOS Internal (IRET) 00AC 2Bh DOS Internal (IRET) 00B0 2Ch DOS Internal (IRET) 00B4 2Dh DOS Internal (IRET) 00B8 2Eh DOS Internal EXECUTE-COMMAND 00BC 2Fh DOS Multiplex -------------------------------------------------------------------------------- 00C0 30h DOS Internal (Not a vector! - FAR JMP for CP/M-style calls) 00C4 31h DOS Internal 00C8 32h DOS Reserved (IRET) 00CC 33h Microsoft Mouse 00D0 34h Turbo-C Floating-Point Emulator 00D4 35h Turbo-C Floating-Point Emulator 00D8 36h Turbo-C Floating-Point Emulator 00DC 37h Turbo-C Floating-Point Emulator -------------------------------------------------------------------------------- PC Compatible Low-Memory Map PGS -- Page 2 Interrupt Vectors (0000-003F) ----------------------------- Addr Int Function -------------------------------------------------------------------------------- 00E0 38h Turbo-C Floating-Point Emulator 00E4 39h Turbo-C Floating-Point Emulator 00E8 3Ah Turbo-C Floating-Point Emulator 00EC 3Bh Turbo-C Floating-Point Emulator 00F0 3Ch Turbo-C Floating-Point Emulator 00F4 3Dh Turbo-C Floating-Point Emulator 00F8 3Eh Turbo-C Floating-Point Emulator 00FC 3Fh MS-LINK overlay manager -------------------------------------------------------------------------------- 0100 40h BIOS (DISK) Floppy-disk handler (relocated INT 13h) 0104 41h BIOS (DISK) Primary Fixed-Disk parameters 0108 42h BIOS (EGA) Video handler (relocated INT 10h) 010C 43h BIOS (EGA) Initialization parameters 0110 44h BIOS (EGA) Fonts 0114 45h BIOS Reserved 0118 46h BIOS (DISK) Secondary Fixed-Disk parameters 011C 47h BIOS Reserved (IRET) -------------------------------------------------------------------------------- 0120 48h BIOS Reserved (IRET) 0124 49h BIOS Reserved (IRET) 0128 4Ah BIOS (AT) Real Time Clock Alarm (IRET) 012C 4Bh BIOS Reserved (IRET) 0130 4Ch BIOS Reserved (IRET) 0134 4Dh BIOS Reserved (IRET) 0138 4Eh BIOS Reserved (IRET) 013C 4Fh BIOS Reserved (IRET) -------------------------------------------------------------------------------- 0140 50h BIOS (AT) Real Time Clock (IRET) 0144 51h BIOS Reserved (IRET) 0148 52h BIOS Reserved (IRET) 014C 53h BIOS Reserved (IRET) 0150 54h BIOS Reserved (IRET) 0154 55h BIOS Reserved (IRET) 0158 56h BIOS Reserved (IRET) 015C 57h BIOS Reserved (IRET) -------------------------------------------------------------------------------- 0160 58h BIOS Reserved (IRET) 0164 59h BIOS Reserved (IRET) 0168 5Ah BIOS Reserved (IRET) 016C 5Bh BIOS Reserved (IRET) 0170 5Ch BIOS Reserved (IRET) 0174 5Dh BIOS Reserved (IRET) 0178 5Eh BIOS Reserved (IRET) 017C 5Fh BIOS Reserved (IRET) -------------------------------------------------------------------------------- 0180 60h User programs (NULL) 0184 61h User programs (NULL) 0188 62h User programs (NULL) 018C 63h User programs (NULL) 0190 64h User programs (NULL) 0194 65h User programs (NULL) 0198 66h User programs (NULL) 019C 67h LIM EMS (User programs) -------------------------------------------------------------------------------- 01A0 68h Not used (IRET) 01A4 69h Not used (IRET) 01A8 6Ah Not used (IRET) 01AC 6Bh Not used (IRET) 01B0 6Ch Not used (IRET) 01B4 6Dh Not used (IRET) 01B8 6Eh Not used (IRET) 01BC 6Fh Not used (IRET) -------------------------------------------------------------------------------- PC Compatible Low-Memory Map PGS -- Page 3 Interrupt Vectors (0000-003F) ----------------------------- Addr Int Function -------------------------------------------------------------------------------- 01C0 70h BIOS (AT) IRQ_9 Redirect 01C4 71h BIOS (AT) IRQ_10 Redirect 01C8 72h BIOS (AT) IRQ_11 Redirect 01CC 73h BIOS (AT) IRQ_12 Redirect 01D0 74h BIOS (AT) IRQ_13 Redirect 01D4 75h BIOS (AT) IRQ_14 Redirect 01D8 76h BIOS (AT) INT_87 Redirect 01DC 77h BIOS (AT) IRQ_15 Redirect -------------------------------------------------------------------------------- 01E0 78h Not Used (NULL) 01E4 79h Not Used (NULL) 01E8 7Ah Not Used (NULL) 01EC 7Bh Not Used (NULL) 01F0 7Ch Not Used (NULL) 01F4 7Dh Not Used (NULL) 01F8 7Eh Not Used (NULL) 01FC 7Fh Not Used (NULL) -------------------------------------------------------------------------------- 0200 80h BASIC while in interpreter ... 03C0 F0h BASIC while in interpreter -------------------------------------------------------------------------------- 03C4 F1h User Interrupt (NULL) 03C8 F2h User Interrupt (NULL) 03CC F3h User Interrupt (NULL) 03D0 F4h User Interrupt (NULL) 03D4 F5h User Interrupt (NULL) 03D8 F6h User Interrupt (NULL) 03DC F7h User Interrupt (NULL) 03FC F8h User Interrupt (NULL) 03E0 F8h User Interrupt (NULL) 03E4 F9h User Interrupt (NULL) 03E8 FAh User Interrupt (NULL) 03EC FBh User Interrupt (NULL) 03F0 FCh User Interrupt (NULL) 03F4 FDh User Interrupt (NULL) 03F8 FEh User Interrupt (NULL) Destroyed on AT in protected mode (Ext. Memory) 03FC FFh User Interrupt (NULL) Destroyed on AT in protected mode (Ext. Memory) -------------------------------------------------------------------------------- PC Compatible Low-Memory Map PGS -- Page 4 ROM BIOS Data Area Map (0400-04EF) ---------------------------------- Addr | Ln | Function -----+----+--------------------------------------------------------------------- 0400 | 08 | COM1, COM2, COM3, COM4 Base I/O-addresses -----+----+--------------------------------------------------------------------- 0408 | 08 | LPT1, LPT2, LPT3, LPT4 Base I/O-addresses -----+----+--------------------------------------------------------------------- 0410 | 02 | EQUIPMENT Flags 76543210 76543210 | | # printers C0 xx...... ........ | | Serial printer 20 ..x..... ........ | | Game adapter 10 ...x.... ........ | | # Serial ports 0E ....xxx. ........ | | No DMA 01 .......x ........ | | # Diskette drives C0 ........ xx...... (00=1, 01=2, 10=3, 11=4) | | Initial video mode 30 ........ ..xx.... (10=Co80, 11=Mono) | | Not used 0C ........ ....xx.. | | Math coprocessor 02 ........ ......x. | | Disk drives present 01 ........ .......x -----+----+--------------------------------------------------------------------- 0412 | 01 | BOOT flags -----+----+--------------------------------------------------------------------- 0413 | 02 | RAM Installed (kb) -----+----+--------------------------------------------------------------------- 0415 | 02 | BOOT error flags -----+----+--------------------------------------------------------------------- 0417 | 02 | KEYBOARD Status 76543210 76543210 | | Insert 80 x....... ........ | | Caps Lock 40 .x...... ........ | | Num Lock 20 ..x..... ........ | | Scroll Lock 10 ...x.... ........ | | Alt shift 08 ....x... ........ | | Ctrl shift 04 .....x.. ........ | | Shift (left) 02 ......x. ........ | | Shift (right) 01 .......x ........ | | Insert 80 ........ x....... | | Caps Lock 40 ........ .x...... | | Num Lock 20 ........ ..x..... | | Scroll Lock 10 ........ ...x.... | | Ctrl Num Lock 08 ........ ....x... (hold state) | | Not used 04 ........ .....xxx -----+----+--------------------------------------------------------------------- 0419 | 01 | KEYBOARD Alternate (reserved) -----+----+--------------------------------------------------------------------- 041A | 02 | KEYBOARD Buffer Head 041C | 02 | KEYBOARD Buffer Tail 041E | 20 | KEYBOARD 16-key Circular Buffer -----+----+--------------------------------------------------------------------- 043E | 01 | DISKETTE Recalibrate bits 0-3 043F | 01 | DISKETTE Motor bits 0-3 0440 | 01 | DISKETTE Motor count 0441 | 01 | DISKETTE Error status 0442 | 07 | DISKETTE Controller status -----+----+--------------------------------------------------------------------- 0449 | 01 | VIDEO CGA/MDA display mode Pages Chars Pixels | | 00 = CGA 2-color (EGA 16-color) A/N text 8 40x25 320x200 | | 01 = CGA 16-color A/N text 8 40x25 320x200 | | 02 = CGA 2-color (EGA 16-color) A/N text 4/8 80x25 640x200 | | 03 = CGA 16-color A/N text 4/8 80x25 640x200 | | 04 = CGA 4-color graphics 1 40x25 320x200 | | 05 = CGA 2-color (EGA 4-color) graphics 1 40x25 320x200 | | 06 = CGA 2-color graphics 1 80x25 640x200 | | 07 = MDA 2-color (EGA 4-color) graphics 4 80x25 720x350 | | 08 = CGA 16-color graphics (undocumented) ? 160x200 | | 09 = CGA 16-color graphics (undocumented) ? 320x200 | | 0A = PC-JR | | 0B | | 0C | | 0D | | 0E | | 0F -----+----+--------------------------------------------------------------------- PC Compatible Low-Memory Map PGS -- Page 5 ROM BIOS Data Area Map (0400-04EF) ---------------------------------- Addr | Ln | Function -----+----+--------------------------------------------------------------------- 0449 | 01 | VIDEO EGA display modes - CRT Seg Pages Chars Pixels | | 00 = 16/64-color 8x14 text EGA B800 8 40x25 320x350 | | 01 = 16/64-color 8x14 text EGA B800 8 40x25 320x350 | | 02 = 16/64-color 8x14 text EGA B800 4/8 80x25 640x350 | | 03 = 16/64-color 8x14 text EGA B800 4/8 80x25 640x350 | | 04 = 4-color graphics CGA B800 1 40x25 320x200 | | 05 = 4-color graphics CGA B800 1 40x25 320x200 | | 06 = 2-color graphics CGA B800 1 80x25 640x200 | | 07 = 4-shade mono 9x14 text MDA B000 4/8 80x25 720x350 | | 08 | | 09 | | 0A = 4/16 or 16/64-color graphics EGA A000 1/2 80x25 640x350 | | 0B | | 0C | | 0D = 16-color graphics CGA A000 2/4/8 40x25 320x200 | | 0E = 16-color graphics CGA A000 1/2/4 80x25 640x200 | | 0F = 4-shade mono graphics MDA A000 1/2 80x25 640x350 | | 10 = 16/64-color graphics EGA A000 2/4/8 80x25 640x350 -----+----+--------------------------------------------------------------------- 044A | 02 | VIDEO Screen-width in columns 044C | 02 | VIDEO Screen regeneration-length 044E | 02 | VIDEO Screen location offset (current page) 0450 | 10 | VIDEO Screen page 0-7 cursor locations as col:row bytes 0460 | 02 | VIDEO Screen cursor start:end row bytes 0462 | 01 | VIDEO Current screen page 0463 | 02 | VIDEO Video-controller port-address 0465 | 01 | VIDEO Current CRT mode 0466 | 01 | VIDEO Color-palette mask -----+----+--------------------------------------------------------------------- 0467 | 05 | BOOT Work area -----+----+--------------------------------------------------------------------- 046C | 04 | CLOCK Master-count DWORD 0470 | 01 | CLOCK Roll-over flag -----+----+--------------------------------------------------------------------- 0471 | 01 | CTRL-BREAK flag (bit 7) -----+----+--------------------------------------------------------------------- 0472 | 02 | KEYBOARD Reset (1234) on Ctrl-Alt-Del -----+----+--------------------------------------------------------------------- 0474 | 01 | 286 Fixed disk status 0475 | 01 | 286 Fixed disk drive number 0476 | 01 | 286 Fixed disk control byte 0477 | 01 | 286 Fixed disk port offset -----+----+--------------------------------------------------------------------- 0478 | 05 | 286 Parallel-port timeout 047C | 05 | 286 Serial-port timeout -----+----+--------------------------------------------------------------------- 0480 | 04 | 286 Additional keyboard buffer -----+----+--------------------------------------------------------------------- 0484 | 01 | VIDEO EGA Screen rows 0485 | 02 | VIDEO EGA Bytes per character 0487 | 02 | VIDEO EGA Information 76543210 76543210 | | Clear/not-clear regen 80 x....... ........ | | Onboard RAM 60 .xx..... ........ 00=064k, 01=128k, | | Enhanced Keyboard 10 ...x.... ........ 10=192k, 11=256k | | Not active monitor 08 ....x... ........ | | Wait for enable 04 .....x.. ........ | | Monochrome attached 02 ......x. ........ | | Not emulate active 01 .......x ........ | | Feature bits F0 ........ xxxx.... | | Switch settings 0F ........ ....xxxx -----+----+--------------------------------------------------------------------- 0489 | 03 | Reserved -----+----+--------------------------------------------------------------------- 048B | 01 | 286 Last diskette data rate selected -----+----+--------------------------------------------------------------------- PC Compatible Low-Memory Map PGS -- Page 6 ROM BIOS Data Area Map (0400-04EF) ---------------------------------- Addr | Ln | Function -----+----+--------------------------------------------------------------------- 048C | 01 | 286 Fixed-disk status-register 048D | 01 | 286 Fixed-disk error-register 048E | 01 | 286 Fixed-disk interrupt-flag -----+----+--------------------------------------------------------------------- 048F | 01 | 286 Fixed-disk/diskette combination controller flag -----+----+--------------------------------------------------------------------- 0490 | 01 | 286 Diskette drive 0 media state 0491 | 01 | 286 Diskette drive 1 media state 0492 | 01 | 286 Diskette drive 0 operation start state 0493 | 01 | 286 Diskette drive 1 operation start state 0494 | 01 | 286 Diskette drive 0 present cylinder 0495 | 01 | 286 Diskette drive 1 present cylinder -----+----+--------------------------------------------------------------------- 0496 | 01 | 286 Reserved -----+----+--------------------------------------------------------------------- 0497 | 01 | 286 Additional keyboard LED flag -----+----+--------------------------------------------------------------------- 0498 | 04 | 286 Real-time-clock user wait flag offset:segment 049C | 04 | 286 Real-time-clock user wait flag 04A0 | 02 | 286 Real-time-clock wait-active flag -----+----+--------------------------------------------------------------------- 04A2 | 06 | Reserved -----+----+--------------------------------------------------------------------- 04A8 | 04 | EGA DWORD pointer-save -----+----+--------------------------------------------------------------------- 04AC | 44 | Reserved -----+----+--------------------------------------------------------------------- Interapplication Control Area (ICA) (04F0 - 04FF) ----------------------------- DOS / ROM BASIC Control Area (0500 - 05FF) ---------------------------- Addr | Ln | Function -----+----+--------------------------------------------------------------------- 0500 | 01 | DOS Print-screen control (00 = Ok, 01 = in process, FF = error) -----+----+--------------------------------------------------------------------- 0501 | 03 | -----+----+--------------------------------------------------------------------- 0504 | 01 | DOS Single-diskette drive code (00 = drive A, 01 = drive B) -----+----+--------------------------------------------------------------------- 0505 | 0B | -----+----+--------------------------------------------------------------------- 0510 | 02 | BASIC default data segment 0512 | 04 | BASIC clock-tick interrupt-vector 0516 | 04 | BASIC break-key interrupt-vector 051A | 04 | BASIC diskette-error interrupt-vector 051E | E2 | BASIC Reserved -----+----+---------------------------------------------------------------------